#include <stdlib.h>
#include <assert.h>
#include <stdio.h>
#include "tabDyn.h"

void initTab(TabDyn *tabDyn)
{
  assert(tabDyn != NULL);
  tabDyn->adPremierEl = (Element*) malloc (sizeof(Element));
  tabDyn->capacite = 1;
  tabDyn->taille = 0;
}

void detruireTab(TabDyn *tabDyn)
{
  assert(tabDyn != NULL);
  tabDyn->adPremierEl = NULL;
  tabDyn->capacite = 0;
  tabDyn->taille = 0;
  
  free(tabDyn->adPremierEl);
  tabDyn = NULL;
}

void ajoutEl(TabDyn *tabDyn, const Element ajout)
{
  if(tabDyn->capacite == tabDyn->taille) 
    {
      (tabDyn->adPremierEl) = (Element*) realloc (tabDyn->adPremierEl,tabDyn->capacite * 2);
      tabDyn->capacite = tabDyn->capacite * 2;
    }
  tabDyn->adPremierEl[tabDyn->taille] = ajout;
  tabDyn->taille = tabDyn->taille + 1;
}

void testRegression()
{
  TabDyn tabTest;
  Element el = 17;
  printf("\tInitialisation du tableau : ");
  initTab(&tabTest);
  printf("OK .\n");

  printf("\tAjout d'un element : ");
  ajoutEl(&tabTest,el);
  printf("OK .\n");

  printf("\tDestruction du tableau : ");
  detruireTab(&tabTest);
  printf("OK .\n");
  
  
}
